package com.eduagent.xwqeduagent.api.SpeechEvaluation;

import lombok.Builder;
import lombok.Data;

/**
 * 语音评测参数类
 */
@Data
@Builder
public class SpeechEvaluationParams {

    /**
     * 服务类型指定 (必传)
     * ise - 开放评测
     */
    private String sub;
    
    /**
     * 语言类型 (必传)
     * cn_vip - 中文
     * en_vip - 英文
     */
    private String ent;
    
    /**
     * 题型 (必传)
     * 
     * 中文题型：
     * read_syllable - 单字朗读，汉语专有
     * read_word - 词语朗读
     * read_sentence - 句子朗读
     * read_chapter - 篇章朗读
     * 
     * 英文题型：
     * read_word - 词语朗读
     * read_sentence - 句子朗读
     * read_chapter - 篇章朗读
     * simple_expression - 英文情景反应
     * read_choice - 英文选择题
     * topic - 英文自由题
     * retell - 英文复述题
     * picture_talk - 英文看图说话
     * oral_translation - 英文口头翻译
     */
    private String category;
    
    /**
     * 待评测文本 (必传)
     * utf8 编码，系统将自动添加utf8 BOM头 ('\uFEFF')
     * 无需在传入文本时手动添加BOM头
     */
    private String text;
    
    /**
     * 文本编码 (必传)
     * utf-8
     * gbk
     */
    private String tte;
    
    /**
     * 跳过ttp直接使用ssb中的文本进行评测 (必传)
     * 默认值true
     */
    private boolean ttpSkip;
    
    /**
     * 音频格式 (可选)
     * raw: 未压缩的pcm格式音频或wav
     * lame: mp3格式音频
     * speex-wb;7: 讯飞定制speex格式音频(默认值)
     */
    private String aue;
    
    /**
     * 音频采样率 (可选)
     * 默认值: audio/L16;rate=16000
     */
    private String auf;
    
    /**
     * 返回结果格式 (可选)
     * utf8
     * gbk (默认值)
     */
    private String rstcd;
    
    /**
     * 评测群体 (可选)
     * adult (成人群体，不设置群体参数时默认为成人)
     * youth (中学群体)
     * pupil (小学群体)
     */
    private String group;
    
    /**
     * 打分及检错松严门限 (可选，仅中文引擎支持)
     * easy - 容易
     * common - 普通
     * hard - 困难
     */
    private String checkType;
    
    /**
     * 学段参数 (可选，仅中文题型：中小学的句子、篇章题型支持)
     * junior - 1,2年级
     * middle - 3,4年级
     * senior - 5,6年级
     */
    private String grade;
    
    /**
     * 评测返回结果与分制控制 (可选)
     * entirety - 完整 (默认值)
     * plain - 精简，评测返回结果将只有总分
     */
    private String rst;
    
    /**
     * 返回结果控制 (可选)
     * 0 - 不控制 (默认值)
     * 1 - 控制
     */
    private String iseUnite;
    
    /**
     * 拓展能力 (可选，生效条件ise_unite="1", rst="entirety")
     * multi_dimension - 多维度分信息显示（准确度分、流畅度分、完整度打分）
     * pitch - 单词基频信息显示（基频开始值、结束值）
     * syll_phone_err_msg - 音素错误信息显示（声韵、调型是否正确）
     */
    private String extraAbility;
    
    /**
     * 在rst="entirety"且ise_unite="0"的情况下plev的取值不同对返回结果有影响 (可选)
     * 0 - 给出全部信息
     */
    private String plev;
} 